
import numpy as np
import pandas as pd
import math
def do(np,pd):

    ex1=pd.read_excel('./18级高一体测成绩汇总.xls')
    ex2=pd.read_excel('./18级高一体测成绩汇总.xls',sheet_name = 1)
    ex3=pd.read_excel('./体侧成绩评分表.xls', header=[0, 1])
    #4、数据类型转换

 # 男1000米跑，数据类型是str，并且是4’26这种形式，需要变成float类型的值
    ex1c = ex1.copy()
    ex1c['男1000米跑'] = ex1c['男1000米跑'].str.replace('\'','.').map(lambda x: 0.0 if math.isnan(float(x))==True else x)
    #4.1
    ex3c = ex3.copy()
    # ex3c['男1000米跑']['成绩']=  ex3c['男1000米跑']['成绩'].str.replace('"','').replace('\'','.').map(lambda x: 0.0 if math.isnan(float(x))==True else x)
    # ex3c['女800米跑']['成绩']=  ex3c['女800米跑']['成绩'].str.replace('"','').replace('\'','.').map(lambda x: 0.0 if math.isnan(float(x))==True else x)
    # 评分标准中男1000米跑和女800米跑的成绩都是4‘10’‘这种形式，需要转化为float类型值

    woman=  ex3c['女800米跑'].copy()

    mans=  ex3c['男1000米跑'].copy()
    mans['成绩']=  mans['成绩'].str.replace('\'','.').str.replace('"','').map(lambda x: 0.0 if math.isnan(float(x))==True else x)
    woman['成绩']=  woman['成绩'].str.replace('\'','.').str.replace('"','').map(lambda x: 0.0 if math.isnan(float(x))==True else x)
        # .map(lambda x: 0.0 if math.isnan(float(x))==True else x)
    # ex3c['女800米跑']['成绩']=  ex3c['女800米跑']['成绩'].str.replace('\'','.').str.replace('"','').map(lambda x: 0.0 if math.isnan(float(x))==True else x)
    ex3c['女800米跑']=woman
    ex3c['男1000米跑']=mans
    #4.2其他所有数值类型的值，都要转换为float类型的值


    ex1c.loc[:,('男1000米跑','男50米跑','男跳远','男体前屈','男引体','身高','体重','BMI')]=ex1c.loc[:,('男1000米跑','男50米跑','男跳远','男体前屈','男引体','身高','体重','BMI')].astype(float)
    print(ex1c)
    #5
    ex2c = ex1c.copy()
    # ex2c.loc[:,'男1000米跑']=ex2c.loc[:,'男1000米跑'].map(lambda x:x*)
    #man 1000
    # 对体测成绩进行分数转换，跑步类（越小越好）；跳远、体前屈（越大越好）
    # 不知道公式，先空着

    manrun1000=ex3c['男1000米跑'].loc[:,('成绩','分数')]
    manrun1000.loc[:,('成绩','分数')]=manrun1000.loc[:,('成绩','分数')].astype(float)

    manrun50=ex3c['男50米跑'].loc[:,('成绩','分数')]
    manjump=ex3c['男跳远'].loc[:,('成绩','分数')]
    manqu=ex3c['男体前屈'].loc[:,('成绩','分数')]
    manti=ex3c['男引体'].loc[:,('成绩','分数')]
    manfei=ex3c['男肺活量'].loc[:,('成绩','分数')]

    wenrun800=ex3c['女800米跑'].loc[:,('成绩','分数')]
    wenrun50 = ex3c['女50米跑'].loc[:, ('成绩', '分数')]
    wenjump = ex3c['女跳远'].loc[:, ('成绩', '分数')]
    wenqu = ex3c['女体前屈'].loc[:, ('成绩', '分数')]
    wenti = ex3c['女仰卧'].loc[:, ('成绩', '分数')]
    wenfei = ex3c['女肺活量'].loc[:, ('成绩', '分数')]
    # ex1c['男1000米跑成绩'] = ex1c['男1000米跑'].map(lambda x:x)
    # r = manrun1000[manrun1000['成绩'].dropna() == 1]
    # ex1c['男1000米跑成绩'] = ex1c['男1000米跑'].map(lambda x:manrun1000['分数'] if(manrun1000.where(manrun1000['成绩']==x)) else 0)
    r = pd.merge(ex1c,manrun1000,how = 'left',left_on='男1000米跑',right_on='成绩')
    print(r)
    print(manrun1000)

    #
    # print(ex1c)
    # print(manrun1000)
    # print(ex3c)
    # print(manrun1000)
    # print( woman['成绩'])


if __name__=='__main__':
    do(np,pd)